Some clustering products such as Microsoft""s Cluster Server (MSCS) utilize a quorum resource in order to maintain data integrity and cluster unity among the nodes of a cluster. In such products, the quorum resource provides physical storage that is accessible by every node of a cluster and persistent arbitration between the nodes of the clusters. In other words, the quorum resource provides a mechanism which grants ownership of the quorum resource to a single node of the cluster and defends the granted ownership from requests to gain ownership of the quorum resource from other nodes of the cluster.
The MSCS Clustering Service alludes to the fact that third party vendors may develop different types of quorum resources. However, the only quorum resource defined by MSCS Clustering Service and used by current MSCS Clustering Services is the shared SCSI storage device. In particular, current MSCS environments include a shared SCSI storage device which provides physical storage that is accessible by every node of the cluster and which utilizes the Reserve and Release commands of the SCSI protocol in order to maintain persistent arbitration. While shared SCSI storage devices satisfy the requirements of a quorum resource, shared SCSI storage device have some drawbacks. One drawback of shared SCSI storage devices is that shared SCSI storage devices require the nodes of the cluster to be in relative close proximity of the shared SCSI storage device due to the cabling requirements of the SCSI protocol. Another drawback of shared SCSI storage devices is that shared SCSI storage devices are rather expensive in today""s marketplace (e.g. $10,000). This relatively high expense associated shared SCSI storage devices precludes clustering as a realistic solution in environments that would otherwise gain great benefit from clustering.
Accordingly, a need exists for a method and apparatus which provide a cluster of nodes with a more cost effective implementation of a quorum resource than current shared SCSI storage device implementations.
The present invention addresses the need for a method and apparatus which provide a cluster of nodes with a more cost effective implementation of a quorum resource current shared SCSI storage device implementations. In accordance with one embodiment of the present invention, there is a provided computer system operable to provide nodes of a cluster with a quorum resource. The computer system includes a network interface controller, a mass storage device, a processor, and memory. The network interface controller is operable to send messages to the nodes via a network and receive messages from the nodes via the network. The mass storage device includes storage that is used to implement the quorum resource and that is accessible by the nodes via the network interface controller. The processor is operably coupled to the network interface controller and the mass storage device. The memory is operably coupled to the processor and includes instructions, which when executed by the processor, cause the processor to process a first message requesting ownership of the quorum resource that is received from a first node of the cluster via the network interface controller. Furthermore, the instructions cause the processor to determine whether the first node already owns the quorum resource in response to receiving the first message. Moreover, the instructions cause the processor to determine whether a second message requesting ownership of the quorum resource is received from a second node of the cluster within a predetermined time period of receiving the first message if the first node does not already own the quorum resource. The instructions cause the processor to grant ownership of the quorum resource to the first node if the second message is not received within the predetermined time period.
Pursuant to another embodiment of the present invention, there is provided a high availability system. The high availability system includes a cluster having a plurality of nodes coupled to a network, and a quorum arbitrator having a quorum resource. The quorum arbitrator is operably coupled to said plurality of nodes via said network. Moreover, said quorum arbitrator is operable to receive a first message requesting ownership of said quorum resource from a first node of said plurality of nodes, and determine whether said first node already owns said quorum resource in response to receiving said first message. The quorum arbitrator is further operable to determine whether a second message requesting ownership of said quorum resource is received from a second node of said plurality of nodes within a predetermined time period of receiving said first message if said first node does not already own said quorum resource. Furthermore, quorum arbitrator is operable to grant ownership of said quorum resource to said first node of said plurality of nodes if said second message is not received within said predetermined time period.
Pursuant to yet another embodiment of the present invention, there is provided a computer readable medium for configuring a computer system having a network interface controller, at least one processor, and a mass storage device to implement a quorum arbitrator having a quorum resource. The computer readable medium includes instructions, which when executed by said computer system, cause said computer system to receive a first message requesting ownership of said quorum resource from a first node of a plurality of nodes via said network interface controller. Moreover, the instructions cause the computer system to determine whether said first node already owns said quorum resource in response to receiving said first message. The instructions also cause the computer system to determine whether a second message requesting ownership of said quorum resource is received from a second node of said plurality of nodes within a predetermined time period of receiving said first message if said first node does not already own said quorum resource. Moreover, the instructions cause the computer system to grant ownership of said quorum resource to said first node of said plurality of nodes if said second message is not received within said predetermined time period.
It is an object of the present invention to provide a new high availability system.
It is an object of the present invention to provide an improved high availability system.
It is yet another object of the present invention to provide an inexpensive quorum resource for a high availability system.
It is still another object of the present invention to provide a quorum arbitrator and quorum resource which may be implemented with a properly programmed conventional computer system.
The above and other objects, features, and advantages of the present invention will become apparent from the following description and the attached drawings.